home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / g_man / cat3 / standard / scrsubdivide.z / scrsubdivide
Text File  |  1998-10-20  |  7KB  |  133 lines

  1.  
  2.  
  3.  
  4. ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG))))                                              ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee - subdivide lines and polygons to a screen-space limit
  10.  
  11. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  12.      vvvvooooiiiidddd ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((mmmmooooddddeeee,,,, ppppaaaarrrraaaammmmssss))))
  13.      lllloooonnnngggg mmmmooooddddeeee;;;;
  14.      ffffllllooooaaaatttt ppppaaaarrrraaaammmmssss[[[[]]]];;;;
  15.  
  16. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  17.      _m_o_d_e     Specify whether and how lines and polygons are to be subdivided.
  18.               Options are:
  19.  
  20.               SSSSSSSS____OOOOFFFFFFFF:  do not subdivide. (default)
  21.  
  22.               SSSSSSSS____DDDDEEEEPPPPTTTTHHHH:  subdivide based on _z values in screen-coordinates.
  23.  
  24.      _p_a_r_a_m_s   Expects an array that contains parameter specifications for the
  25.               subdivision mode that has been selected.
  26.  
  27.               The values provided in the _p_a_r_a_m_s array are ignored when the
  28.               mode is SSSSSSSS____OOOOFFFFFFFF....
  29.  
  30.               SSSSSSSS____DDDDEEEEPPPPTTTTHHHH expects three values in the _p_a_r_a_m_s array:  _m_a_x_z,
  31.               _m_i_n_s_i_z_e, and _m_a_x_s_i_z_e.  _m_a_x_z specifies the distance, in screen-
  32.               coordinates, between _z=_c_o_n_s_t_a_n_t subdivision planes.  (Z-buffer
  33.               screen coordinates are defined by llllsssseeeettttddddeeeepppptttthhhh.)  _m_i_n_s_i_z_e and
  34.               _m_a_x_s_i_z_e specify bounds, in units of pixels, of the screen size
  35.               of the resulting subdivided polygons.  Setting _m_a_x_z to 0.0
  36.               eliminates screen-coordinate _z from consideration during the
  37.               subdivision.  Likewise, setting _m_i_n_s_i_z_e or _m_a_x_s_i_z_e to 0.0
  38.               eliminates lower or upper bounds on screen size from
  39.               consideration.
  40.  
  41. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  42.      When ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee mode is not SSSSSSSS____OOOOFFFFFFFF, lines and polygons are subdivided
  43.      until the specified criteria are met.  Parameters are assigned to created
  44.      vertices as though they have been interpolated in eye-coordinates, rather
  45.      than in screen-coordinates.  Thus effects that result from (incorrect)
  46.      linear interpolation in screen-coordinates can be compensated for with
  47.      ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee.
  48.  
  49.      Mode SSSSSSSS____DDDDEEEEPPPPTTTTHHHH slices polygons into strips whose edges have constant
  50.      screen _z value.  It divides lines into segments whose endpoint _z values
  51.      differ by _m_a_x_z.  This subdivision is done after lighting, so the newly
  52.      created vertices are not lighted, but rather simply take color values as
  53.      linear interpolants of the original vertices (in eye-coordinates).  Both
  54.      fog and texture mapping are done after the depth subdivision, so both
  55.      benefit from its operation.
  56.  
  57.      Polygon slices created by SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision have edges whose _z values
  58.      differ by _m_a_x_z.  However, if the width of the resulting slices is less
  59.      than _m_i_n_s_i_z_e, the slices are increased to have width equal to _m_i_n_s_i_z_e.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG))))                                              ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      For example, if _m_a_x_s_i_z_e is set to 0.0 (i.e. defeated), a polygon that
  75.      directly faces the viewer is not subdivided, because all vertices have
  76.      the same _z value.  As this polygon is rotated away from the viewer, it is
  77.      sliced into strips whose edges are parallel to the axis of rotation.  The
  78.      number of strips increases as the rotation increases, until the strips
  79.      reach a width (measured perpendicular to the axis of rotation) of
  80.      _m_i_n_s_i_z_e.  At this angle the number of slices is at its maximum.  As the
  81.      rotation is continued, the slice width remains constant, and the number
  82.      of slices decreases, reaching zero as the polygon becomes perpendicular
  83.      to the viewer.
  84.  
  85.      When _m_a_x_s_i_z_e is non-zero, the description above changes only in that
  86.      large polygons that are nearly perpendicular to the viewer are subdivided
  87.      into strips of width _m_a_x_s_i_z_e.  Likewise, lines segments created by
  88.      SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision are limited to a minimum length of _m_i_n_s_i_z_e, and a
  89.      maximum length of _m_a_x_s_i_z_e.
  90.  
  91.      SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision improves the accuracy of texture mapping when non-
  92.      orthographic projections are used, and improves the accuracy of fog
  93.      calculations.  It is not useful for lighting improvement.
  94.  
  95. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  96.      fogvertex, texbind, tevbind
  97.  
  98. NNNNOOOOTTTTEEEESSSS
  99.      ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee cannot be used while mmmmmmmmooooddddeeee is MMMMSSSSIIIINNNNGGGGLLLLEEEE.
  100.  
  101.      Only the VGX supports ssssccccrrrrssssuuuubbbbddddiiiivvvviiiiddddeeee.  It has no effect on the VGXT and
  102.      SkyWriter models because of their support for per-pixel perspective
  103.      division.
  104.  
  105. BBBBUUUUGGGGSSSS
  106.      When the screen size of subdivided polygons is limited, either by _m_i_n_s_i_z_e
  107.      or by _m_a_x_s_i_z_e, adjacent polygons can subdivide differently such that
  108.      newly created vertices on their shared boundary do not coincide.  In this
  109.      case, some pixels at their shared boundary may not be scan converted by
  110.      either polygon.
  111.  
  112.      Incorrect specification of either _m_a_x_z or _m_i_n_s_i_z_e can result in near-
  113.      infinite polygon subdivision.  To avoid the resulting poor graphics
  114.      system response, IRIS-4D VGX models do not subdivide polygons whose
  115.      SSSSSSSS____DDDDEEEEPPPPTTTTHHHH subdivision would result in more than 2000 slices.
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.